所需方法
1.service
2.brocastreciver
3.BOOT_COMPLETED
一 建立在系統背後執行的service
package com.example.kunlinlee.reboot
import android.app.Service
import android.content.Intent
import android.os.IBinder
class bootservice: Service() {
override fun onBind(intent: Intent?): IBinder? {
return null
}
}
這邊要放置的是service要做的工作
二 建立brocastreciver 在APP端收到訊息的工作
package com.example.kunlinlee.reboot
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
class Reciver:BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if(intent?.action.equals(Intent.ACTION_BOOT_COMPLETED)){
val serviceIntent = Intent(context,bootservice::class.java)
context?.startService(serviceIntent)
}
val activityIntent = Intent(context,MainActivity::class.java)
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context?.startActivity(activityIntent)
}
}
利用intent.getAction來接收訊息訊息為Intent.ACTION_BOOT_COMPLETED 時
利用intent來建立service
三 建立權限
註測reciver
<receiver android:name=".Reciver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
註冊service
完成
結論
很簡單 但要注意一點 開機後並不會馬上執行 android有自己的開機程序 所有完成後才會開始執行動作